package org.erp.common.annotation;

import org.erp.common.constant.ProductConstant;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface StockLockBatch {

    // DTO 中代表批次列表的字段名
    String listField() default "";

    // 列表元素中 stockId 的字段名
    String idField() default "";

    // 判断入参类型
    boolean directIds() default false;

    // 防止死锁的 TTL
    int ttlSeconds() default 60;

    /**
     * 过滤器前缀
     *
     * @return
     */
    String busyKey() default ProductConstant.PRODUCT_BUSY_STOCKS;
}
